export const performDifferentTypeMethodsFn = (data) => {
  /**
    @routerParams 路由路径携带的参数
    @getExistTableDataAction 获取表格数据的方法
    @initQueryExistRecordAction 获取单据信息的方法
    @commitType 获取单据信息的入参，区别页面类别
    @isFromMenuPage 是否从菜单进入修改页的标识
    @isViewPageEnter 是否是查看页的标识
    // 接口参数部分：
    @apiSourceList 接口参数对象
    @queryTableDataFromDocManage 表单管理页面，修改，审核，查看页面调用的获取表格数据的接口参数
    @queryTableDataFromSpu SPU管理页面， 修改页面调用的获取表格数据的接口参数
    @queryTableDataFromSku SKU管理页面， 修改页面调用的获取表格数据的接口参数
    @getFooterFieldsByRecordNo 菜单的修改页面、以及表单管理页面，修改，审核，查看页面调用的获取表尾字段数据的接口参数
    @getFooterFieldsByUuid SPU管理页面，修改页面调用的获取表尾字段数据的接口参数
    @getFooterFieldsBySkuNo SKU管理页面， 修改页面调用的获取表尾字段数据的接口参数
  */
  let {
    recordNo,
    uuid,
    type,
    skuNo,
    getExistTableDataAction,
    initQueryExistRecordAction,
    apiSourceList,
    commitType
  } = data
  let {
    queryTableDataFromDocManage,
    queryTableDataFromSpu,
    queryTableDataFromSku,
    getFooterFieldsByRecordNo,
    getFooterFieldsByUuid,
    getFooterFieldsBySkuNo
  } = apiSourceList
  let tableData = {
    api: {},
    params: {}
  }
  let footerFields = {
    api: {},
    params: {}
  }
  switch (type) {
    case 'edit': // 从表单管理页面的修改进入
      tableData = {
        api: queryTableDataFromDocManage,
        params: {
          recordNo: recordNo
        }
      }
      footerFields = {
        api: getFooterFieldsByRecordNo,
        params: {
          recordNo: recordNo
        }
      }
      break
    case 'view': // 从表单管理页面的查看进入
      tableData = {
        api: queryTableDataFromDocManage,
        params: {
          recordNo: recordNo
        }
      }
      footerFields = {
        api: getFooterFieldsByRecordNo,
        params: {
          recordNo: recordNo
        }
      }
      break
    case 'audit': // 从表单管理页面的审核进入
      tableData = {
        api: queryTableDataFromDocManage,
        params: {
          recordNo: recordNo
        }
      }
      footerFields = {
        api: getFooterFieldsByRecordNo,
        params: {
          recordNo: recordNo
        }
      }
      break
    case 'single_spu': // 从SPU管理的修改进入
      tableData = {
        api: queryTableDataFromSpu,
        params: {
          productKey: uuid
        }
      }
      footerFields = {
        api: getFooterFieldsByUuid,
        params: {
          productKey: uuid,
          commitType
        }
      }
      break
    case 'single_sku': // 从SKU管理的修改进入
      let params = skuNo ? {
        skuNo: skuNo
      } : {
        productKey: uuid
      }
      let getFooterFieldsUrl = skuNo ? getFooterFieldsBySkuNo : getFooterFieldsByUuid
      tableData = {
        api: queryTableDataFromSku,
        params
      }
      footerFields = {
        api: getFooterFieldsUrl,
        params: {
          ...params,
          commitType
        }
      }
      break
    default:
      break
  }
  getExistTableDataAction(tableData)
  initQueryExistRecordAction(footerFields)
}
